package encoder;

public interface InstructionType {
	public static final int EXTERN = 0;
	public static final int SECTION = 1;
	public static final int RET = 2;
	public static final int PUSH = 3;
	public static final int VARIAVEL_GLOBAL = 4;
	public static final int CONSTANTE_DOUBLE = 5; 
	public static final int FUNCAO_LABEL = 6;
	
	public static final int POP = 7;
	public static final int MOV = 8;
	public static final int CMP = 9;
	
	public static final int ADD = 10;
	public static final int SUB = 11;
	public static final int MULT = 12;
	public static final int DIV = 13;
	
	public static final int INT_FORMAT = 14;
	public static final int DOUBLE_FORMAT = 15;
	public static final int GLOBAL = 16;
	
	public static final int PUSH_FLOAT = 17;
	public static final int POP_FLOAT = 18;
	public static final int ADD_FLOAT = 19;
	public static final int SUB_FLOAT = 20;
	public static final int MULT_FLOAT = 21;
	public static final int DIV_FLOAT = 22;
	public static final int CALL_FUNTION = 23;
	public static final int JUMP = 24;
	
	public static final int JE = 25; //Jump Equal I
	public static final int JGE = 26;// Jump Greater or Equal I
	public static final int JLE = 27;//Jump Less or Equal I
	public static final int JG = 28;//Jump Greater I
	public static final int JL = 29;//Jump Less I
	public static final int JNE = 30;
	
	public static final String FSTP = "fstp";
	public static final String FADDP = "faddp";
	public static final String FSUBP = "fsubp";
	public static final String FMULP = "fmulp";
	public static final String FDIVP = "fdivp";
	public static final String JUMP_WORD = "jmp";
	public static final String JNEequal = "jne";
	public static final String DESVIA_SE_IGUAL_ZERO = "jz";
	public static final String WORD_MULT2operando = "imul";
	public static final String WORD_MULT = "mul";
	public static final String WORD_DIV = "div";
	public static final String WORD_DIV2operando = "idiv";
	public static final String JEqual = "je"; //Jump Equal I
	public static final String JGreaterEqual = "jge";// Jump Greater or Equal I
	public static final String JLessEqual = "jle";//Jump Less or Equal I
	public static final String JGreater = "jg";//Jump Greater I
	public static final String JLess = "jl";//Jump Less I
	public static final String NAME_RET = "ret";
	public static final String CALL = "call";
	public static final String CMP_WORD = "cmp";
	
	public static final String PRINTF = "printf";
	public static final String DATA = ".data";
	public static final String TEXT = ".text";
	public static final String NAME_EXTERN = "extern";
	public static final String NAME_SECTION = "SECTION";
	public static final String NAME_PUSH = "push";
	public static final String WORD_POP = "pop";
	public static final String FLD = "fld";
	public static final String NAME_MOV = "mov";
	public static final String WORD_SUB = "sub";
	public static final String WORD_ADD = "add";
	public static final String WINMAIN = "WinMain@16";
	public static final String TIPO_INT = "dd";
	public static final String TIPO_DOUBLE = "dq";
	public static final String CONSTANTE = "const";
	public static final String DWORD = "dword";
	public static final String QWORD = "qword";
	public static final String ST1 = "st1";
	
	public static final String EBP = "ebp";
	public static final String ESP = "esp";
	public static final String EAX = "eax";
	public static final String EBX = "ebx";

}
